/**
 * @file StarsDialog.cpp
 *
 * Klasa okna podglądu bazy danych gwiazd - implementacja.
 *
 * @author Zbigniew Siciarz
 * @date 2009
 * @version 2.0.0
 * @since 2.0.0
 */

#include "StarsDialog.h"

#include "dogz/StarManager.h"
#include <QHeaderView>
#include <QLabel>
#include <QWidget>


/**
 * Tworzy obiekt okienka tabeli gwiazd.
 *
 * @param parent obiekt rodzica
 */
StarsDialog::StarsDialog(QWidget *parent)
    : QDialog(parent), model(0)
{
	ui.setupUi(this);

    model = new StarModel("stars", Dogz::StarManager::Name, Qt::DescendingOrder, this);

    ui.tblStars->setModel(model);
    ui.tblStars->setColumnHidden(Dogz::StarManager::Id, true);
    ui.tblStars->setColumnHidden(Dogz::StarManager::Designation, true);
    ui.tblStars->setColumnHidden(Dogz::StarManager::Auid, true);

    QHeaderView* header = ui.tblStars->horizontalHeader();
    header->setDefaultAlignment(Qt::AlignCenter);
    header->setSortIndicator(Dogz::StarManager::Name, Qt::DescendingOrder);
    header->setStretchLastSection(true);
}

/**
 * Zdarzenie wyświetlenia okienka.
 *
 * @param event obiekt z informacjami o zdarzeniu
 */
void StarsDialog::showEvent(QShowEvent* event)
{
    model->selectByType(StarModel::All);
    ui.tblStars->resizeColumnsToContents();
    ui.lblStarsCount->setText(tr("W bazie znajduje się %1 gwiazd zmiennych.").
            arg(model->rowCount()));
}

/**
 * Wyświetla gwiazdy wszystkich typów.
 */
void StarsDialog::on_btnAll_clicked()
{
    model->selectByType(StarModel::All);
}

/**
 * Wyświetla zmienne zaćmieniowe.
 */
void StarsDialog::on_btnEclipsing_clicked()
{
    model->selectByType(StarModel::Eclipsing);
}

/**
 * Wyświetla cefeidy (w tym RR Lyr).
 */
void StarsDialog::on_btnCepheid_clicked()
{
    model->selectByType(StarModel::Cepheid);
}

/**
 * Wyświetla mirydy.
 */
void StarsDialog::on_btnMira_clicked()
{
    model->selectByType(StarModel::Mira);
}

/**
 * Wyświetla zmienne półregularne.
 */
void StarsDialog::on_btnSemiregular_clicked()
{
    model->selectByType(StarModel::Semiregular);
}

/**
 * Wyświetla nowe, supernowe i nowe karłowate.
 */
void StarsDialog::on_btnEruptive_clicked()
{
    model->selectByType(StarModel::Eruptive);
}
